home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs20.d81
/
flofig.arc
/
FIGURE DRAW
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
2KB
|
89 lines
1 REM FIGURE DRAW FOR CAD
2 PRINT"[147][158]":POKE53280,00:POKE53281,00
3 CLR:DIMA%(255,3):EN=255
4 X$="[216]:"
5 Y$="[217]:"
6 PRINTCHR$(14)"[147][210]EFERENCE (L,R,T,B)":R=1
7 GETA$:IFA$=""THEN7
8 IFA$="R"THENR=2
9 IFA$="T"THENR=3
10 IFA$="B"THENR=4
11 ONRGOSUB35,36,37,38
12 FORS=1024TO2023:POKES,32:NEXT
13 PRINT"";:PRINTTAB(18);"[216]:"
14 PRINT"";:PRINTTAB(28);"[217]:"
15 POKESP,91:POKECP,08
16 PRINTX$;X;"[157] ";Y$;Y;"[157] "
17 GETA$:IFA$<>""THEN23
18 POKESP+X+40*Y,PEEK(SP+X+40*Y)AND127
19 JV=PEEK(56320):FR=JVAND16:IFFR=0THENGOSUB28
20 JV=15-(JVAND15):IFJV=15THEN17
21 ONRGOSUB39,44,49,54
22 POKESP+X+40*Y,PEEK(SP+X+40*Y)OR128:POKECP+X+40*Y,08:GOTO16
23 IFA$=CHR$(20)THENGOSUB30
24 IFA$=CHR$(136)THENGOSUB59
25 IFA$=CHR$(140)THENGOSUB76:RUN
26 IFA$=CHR$(147)THEN3
27 POKESP+X+40*Y,PEEK(SP+X+40*Y)OR128:GOTO17
28 P=P+1:A%(P,1)=X:A%(P,2)=Y:A%(P,3)=1:POKESP+X+40*Y,128+102:POKECP+X+40*Y,08
29 RETURN
30 CL=0
31 CL=CL+1:IFCL=256THENRETURN
32 IFA%(CL,1)<>XTHEN31
33 IFA%(CL,2)<>YTHEN31
34 POKESP+A%(CL,1)+A%(CL,2)*40,32:A%(CL,3)=0:RETURN
35 SP=1504:CP=55776:RETURN
36 SP=1543:CP=55815:RETURN
37 SP=1083:CP=55355:RETURN
38 SP=2003:CP=56275:RETURN
39 IF(JVAND1)THENY=Y-1:IFY<-11THENY=-11
40 IF(JVAND2)THENY=Y+1:IFY>12THENY=12
41 IF(JVAND4)THENX=X-1:IFX<0THENX=0
42 IF(JVAND8)THENX=X+1:IFX>39THENX=39
43 RETURN
44 IF(JVAND1)THENY=Y-1:IFY<-11THENY=-11
45 IF(JVAND2)THENY=Y+1:IFY>12THENY=12
46 IF(JVAND4)THENX=X-1:IFX<-40THENX=-40
47 IF(JVAND8)THENX=X+1:IFX>0THENX=0
48 RETURN
49 IF(JVAND1)THENY=Y-1:IFY<0THENY=0
50 IF(JVAND2)THENY=Y+1:IFY>23THENY=23
51 IF(JVAND4)THENX=X-1:IFX<-19THENX=-19
52 IF(JVAND8)THENX=X+1:IFX>20THENX=20
53 RETURN
54 IF(JVAND1)THENY=Y-1:IFY<-23THENY=-23
55 IF(JVAND2)THENY=Y+1:IFY>0THENY=0
56 IF(JVAND4)THENX=X-1:IFX<-19THENX=-19
57 IF(JVAND8)THENX=X+1:IFX>20THENX=20
58 RETURN
59 PRINT"[147][204][207][193][196] FILENAME:";
60 GETF$:IFF$=""THEN60
61 IFF$=CHR$(13)THENRETURN
62 OPEN2,8,2,F$+".FIG,P,R":P1=0
63 FORT=1TO2
64 GET#2,A$(T)
65 NEXT
66 P1=P1+1:FORT=1TO2
67 GET#2,A$:IFA$=CHR$(255)THEN72
68 REM IFA$=""THEN67
69 A=ASC(A$+CHR$(0))
70 IFA>127THENA=-(AAND127)
71 A%(P1,T)=A:NEXT:A%(P1,3)=1:GOTO66
72 CLOSE2
73 PRINT"[147]":FORT=1TOP1-1:IFA%(T,3)=0THENNEXT:GOTO75
74 X1=A%(T,1):Y1=A%(T,2):POKESP+X1+40*Y1,128+102:POKECP+X1+40*Y1,08:NEXT
75 P=P1-1:RETURN
76 PRINT"[147][211][193][214][197] FILENAME:";
77 GETF$:IFF$=""THEN77
78 IFF$=CHR$(13)THEN88
79 OPEN2,8,2,"@0:"+F$+".FIG,P,W":P1=0
80 PRINT#2,CHR$(0);CHR$(158);
81 P1=P1+1:IFP1=P+1THEN87
82 IFA%(P1,3)=0THEN81
83 FORT=1TO2
84 IFA%(P1,T)<0THENA%(P1,T)=(ABS(A%(P1,T))OR128)
85 NEXT
86 PRINT#2,CHR$(A%(P1,1));:PRINT#2,CHR$(A%(P1,2));:GOTO81
87 PRINT#2,CHR$(255);CHR$(255);:CLOSE2:PRINT"[147]"
88 RETURN